function x_est = qr_detector(y, H)
    % QR分解检测器实现
    % 输入:
    % y - 接收信号向量 (Nr x 1)
    % H - 信道矩阵 (Nr x Nt)
    % 输出:
    % x_est - 估计的发送信号向量 (Nt x 1)
    
    % QR分解
    [Q, R] = qr(H);
    
    % 预处理接收信号
    y_tilde = Q' * y;
    
    % 获取系统大小
    Nt = size(H, 2);
    
    % 后向替代
    x_est = zeros(Nt, 1);
    for k = Nt:-1:1
        x_est(k) = y_tilde(k);
        for j = k+1:Nt
            x_est(k) = x_est(k) - R(k,j)*x_est(j);
        end
        x_est(k) = x_est(k)/R(k,k);
    end
    
    % 硬判决
    x_est_real = sign(real(x_est));
    x_est_imag = sign(imag(x_est));
    x_est = x_est_real + 1j*x_est_imag;
end 